package com.AdvancedDemos.Learn网络编程.CS架构.useTCP5改进4实现服务器收到信息时反馈给所有客户端;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;

/**
 * 需求：服务器端接收数据  服务器端发送 没感觉！
 */
public class Server {

    //定义静态成员变量，记录所有的socket
    public static List<Socket> onLineSockets = new ArrayList<>();

    public static void main(String[] args) throws IOException {

        System.out.println("-----服务端启动成功-------");
        //服务器端   服务器socket
        // 1、创建ServerSocket的对象，同时为服务端注册端口。
        ServerSocket serverSocket = new ServerSocket(8888);
        // 2、使用serverSocket对象，调用一个accept方法，等待客户端的连接请求
        while (true) {
            System.out.println("【服务器端】反复等待客户端连接....");
            Socket socket = serverSocket.accept();
            System.out.println("【服务器端】有客户端连接了！");
            System.out.println("【服务器端】创建新线程处理该socket");
            //将新创建的socket交给集合
            onLineSockets.add(socket);
            //将新创建的socket交给线程
            Thread thead = new ServerSocketThread(socket);
            thead.start();
        }
    }
}
